package com.example.polardbxdemo.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.polardbxdemo.entity.Material;

import java.util.List;
import java.util.Map;

public interface MaterialService extends IService<Material> {

    /**
     * 根据类型查询物料
     */
    List<Material> getByType(Integer type);

    /**
     * 根据JSON属性查询物料
     */
    List<Material> getByPropertyCategory(String category);

    /**
     * 添加物料（包含JSON字段）
     */
    boolean addMaterial(Material material);

    /**
     * 更新物料属性
     */
    boolean updateMaterialProperties(Long id, Map<String, Object> properties);

    /**
     * 根据类型查询并按照创建时间排序
     */
    List<Material> getByTypeOrderByCreateTime(Integer type);

    /**
     * 查询价格范围内的物料
     */
    List<Material> getByPriceRange(Double minPrice, Double maxPrice);

    /**
     * 根据名称模糊查询
     */
    List<Material> getByNameLike(String name);

    /**
     * 查询所有启用的物料
     */
    List<Material> getEnabledMaterials();

    /**
     * 根据类型和最小库存查询
     */
    List<Material> getByTypeAndStock(Integer type, Integer minStock);

    /**
     * 复杂条件查询
     */
    List<Material> complexQuery(String name, Integer type, Double minPrice, Double maxPrice, Boolean enabled);
}